#ifndef PRIMITIVEDRAWER_H
#define PRIMITIVEDRAWER_H

#include "Drawing/IDrawer.h"

#include <wx/dc.h>
#include "CoordsTransformer.h"

class WxWidgetsDrawer : public drawing::IDrawer
{
public:
	WxWidgetsDrawer( wxDC& dc, const CoordsTransformer* transformer );
	virtual ~WxWidgetsDrawer();

	virtual drawing::Pen GetPen() const;
	virtual void SetPen( const drawing::Pen& pen );

	virtual drawing::Brush GetBrush() const;
	virtual void SetBrush( const drawing::Brush& brush );

	virtual void DrawPoint( const cmn::Vec2& point );
	virtual void DrawLine( const cmn::Vec2& start, const cmn::Vec2& end );

	virtual void DrawCircle( const cmn::Circle& circle );
	virtual void DrawPolygon( const cmn::Polygon& polygon );

	virtual void DrawModel( const cmn::Transform& position, const drawing::Model* model );

private:
	wxDC& m_dc;
	const CoordsTransformer* m_transformer;
};

#endif
